Mapbox矢量瓦片pbf文件信息解析 |
您所在的位置:网站首页 › vector tile › Mapbox矢量瓦片pbf文件信息解析 |
Mapbox由于配合其矢量瓦片pbf格式文件,有突出的渲染性能,被很多公司和开发者所使用。矢量瓦片的格式有很多种,其中pbf格式是一种二进制文件,直接把数据信息压缩位二进制了。 矢量瓦片优势主要优势有 数据传输量小 相对与栅格瓦片数据量大大缩小不受分辨率影响 矢量瓦片无论在地图放大到各种级别都是清晰的,都不会出现栅格放大后显示像元的问题。动态样式 矢量瓦片会根据用户的定制的样式动态绘制,也可以动态改变支持前端查询 由于使用的是矢量瓦片,可以在前端直接进行信息查询 矢量瓦片的问题矢量瓦片的优势虽然多,但问题也很明显,坐标和属性信息是可以被用户解析的,也就是安全性的问题。 Mapbox的pbf瓦片解析今天就展示一下,如何解析Mapbox的pbf瓦片文件。这里我是用node.js进行开发和测试的。从Mabox地图的url中抓取了一个pbf文件。 依赖 { "name": "testpbf", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "fs": "^0.0.1-security", "pbf": "^3.0.5", "vector-tile": "^1.3.0" } } js解析代码 var Pbf = require('pbf'); var fs = require('fs'); var VectorTile = require('vector-tile').VectorTile; var data = fs.readFileSync('response.pbf'); var tile = new VectorTile(new Pbf(data)); var layerNames = Object.keys(tile.layers); console.log("图层名称", layerNames); if (layerNames.length > 0) { //获取其中一个图层的一个要素的geoJson格式; var orig = tile.layers[layerNames[0]].feature(0).toGeoJSON(0, 0, 1); console.log("geojson", orig); //查看坐标 console.log("部分坐标",orig.geometry.coordinates[0]); }运行代码 node index.js输出结果 "C:\Program Files\nodejs\node.exe" index.js 图层名称 [ 'dt_xzy' ] geojson { type: 'Feature', geometry: { type: 'MultiPolygon', coordinates: [ [Array], [Array], [Array] ] }, properties: { objectid: 5050, qhdm: '411525112', qhmc: '陈集乡', sjxzqdm: '411525', bz: ' ', provincecode: '41', citycode: '4115', countycode: '411525', uuid: ' ', mj: 148351.45 } } 部分坐标 [ [ [ -110.6103515625, 85.34532513469131 ], [ -110.8740234375, 85.19679703289734 ], [ -109.775390625, 85.15985908749309 ], [ -109.3798828125, 85.05112877980659 ], .......................................... [ -149.58984375, 84.67351256610525 ], [ -148.53515625, 84.68980559853495 ], [ -148.447265625, 84.79051706762746 ], [ -151.0400390625, 85.01689202162626 ], [ -151.0400390625, 85.18205572307536 ], [ -154.3359375, 85.34532513469131 ], [ -110.6103515625, 85.34532513469131 ] ] ] Process finished with exit code 0 矢量瓦片使用注意 从上面的代码可以看出pbf文件是可以被解析出来的,所以在使用时一定要注意 数据脱敏坐标数据脱密防爬虫抓取 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |